package com.platform.modules.report.dao;

import com.platform.modules.report.dto.BaseItemDTO;
import com.platform.modules.report.dto.BaseQueryDTO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import redis.clients.jedis.params.Params;

import java.util.List;
import java.util.Map;

@Mapper
public interface PrjReportDao {



    Integer memberNumber(@Param("params") BaseQueryDTO baseQueryDTO);

    Integer prjCount(@Param("params") BaseQueryDTO baseQueryDTO, @Param("extra") Map<Object,Object> extra);

    // 各规模 - 项目数
    List<Map<String,Object>> prjCountGroupByScale(@Param("params") BaseQueryDTO baseQueryDTO);

    // 各用途 - 项目数
    List<Map<String,Object>> prjCountGroupByPurpose(@Param("params") BaseQueryDTO baseQueryDTO);

    // 各市 - 项目数
    List<Map<String,Object>> prjCountGroupByCity(@Param("params") BaseQueryDTO baseQueryDTO);

    // 各市 - 总面积
    List<Map<String,Object>> prjTotalAreaGroupByCity(@Param("params") BaseQueryDTO baseQueryDTO);

    // 各市 - 总投资
    List<Map<String,Object>> prjTotalInvestmentGroupByCity(@Param("params") BaseQueryDTO baseQueryDTO);

    // 各市 - 重点项目数
    List<Map<String,Object>> importantPrjCountGroupByCity(@Param("params") BaseQueryDTO baseQueryDTO);

    // 各市 - 装配式项目数
    List<Map<String,Object>> zpsCountGroupByCity(@Param("params") BaseQueryDTO baseQueryDTO);

    // 各市 - 被动房项目数
    List<Map<String,Object>> bdfCountGroupByCity(@Param("params") BaseQueryDTO baseQueryDTO);

    // 年度 - 项目数
    List<Map<String,Object>> prjCountGroupByYear(@Param("params") BaseQueryDTO baseQueryDTO);

    // 年度 - 总面积
    List<Map<String,Object>> prjTotalAreaGroupByYear(@Param("params") BaseQueryDTO baseQueryDTO);

    // 年度 - 总投资
    List<Map<String,Object>> prjTotalInvestmentGroupByYear(@Param("params") BaseQueryDTO baseQueryDTO);

    // 年度 - 装配式项目数
    List<Map<String,Object>> zpsCountGroupByYear(@Param("params") BaseQueryDTO baseQueryDTO);

    // 年度 - 被动房项目数
    List<Map<String,Object>> bdfCountGroupByYear(@Param("params") BaseQueryDTO baseQueryDTO);

    // 年度 - 被动房项目数
    List<BaseItemDTO> sgdwPrjCountTop5(@Param("params") BaseQueryDTO baseQueryDTO);

    // 终止施工
    Integer pauseCount(@Param("params") BaseQueryDTO baseQueryDTO);


}
